{
  "run": "run_001",
  "stages": {
    "voice": {
      "status": "done",
      "ts": "2026-08-03 22:16:07",
      "elapsed_s": 143.9,
      "output_tail": "畫同步,從源頭解決\n{\n  \"engine\": \"IndexTTS-2\",\n  \"seed\": 20260803,\n  \"duration\": 51.998118,\n  \"segments\": [\n    {\n      \"start\": 0.0,\n      \"end\": 4.24,\n      \"text\": \"做AI視頻最怕的不是模型不行,而是流程一團亂\"\n    },\n    {\n      \"start\": 4.24,\n      \"end\": 7.7,\n      \"text\": \"我拆解了一條完整的AI視頻生產工作流\"\n    },\n    {\n      \"start\": 7.7,\n      \"end\": 11.56,\n      \"text\": \"一個調度源,三個執行節點,六個生產節點\"\n    },\n    {\n      \"start\": 11.56,\n      \"end\": 14.68,\n      \"text\": \"第一條鐵律,聲音,鮮魚畫面\"\n    },\n    {\n      \"start\": 14.68,\n      \"end\": 18.76,\n      \"text\": \"先刻龍一條穩定聲線,聲稱覆蓋全文的連續母鬼\"\n    },\n    {\n      \"start\": 18.76,\n      \"end\": 23.36,\n      \"text\": \"所有視覺元素貼著聲音走,音畫同步,從源頭解決\"\n    },\n    {\n      \"start\": 23.36,\n      \"end\": 25.82,\n      \"text\": \"第二條,資產一次見庫\"\n    },\n    {\n      \"start\": 25.82,\n      \"end\": 30.72,\n      \"text\": \"臉、聲、音、神美,全部沉澱成持久資產\"\n    },\n    {\n      \"start\": 30.72,\n      \"end\": 34.24,\n      \"text\": \"下次只換文案,就能沿同一條管線出片\"\n    },\n    {\n      \"start\": 34.24,\n      \"end\": 37.98,\n      \"text\": \"第三條,人工門控,不是一鍵全自動\"\n    },\n    {\n      \"start\": 37.98,\n      \"end\": 41.42,\n      \"text\": \"方案確認,小樣測試抽針中檢\"\n    },\n    {\n      \"start\": 41.42,\n      \"end\": 44.46,\n      \"text\": \"四道確認點,守住質量下線\"\n    },\n    {\n      \"start\": 44.46,\n      \"end\": 47.9,\n      \"text\": \"工具不是名單,而是一張執行網絡\"\n    },\n    {\n      \"start\": 47.9,\n      \"end\": 51.72,\n      \"text\": \"想要這套工作流的完整拆解,評論區扣1\"\n    }\n  ],\n  \"master\": \"D:\\\\AI_WORKSPACE\\\\video_use\\\\runs\\\\run_001\\\\02_voice\\\\master.wav\",\n  \"ref\": \"D:\\\\AI_WORKSPACE\\\\video_use\\\\runs\\\\run_001\\\\00_input\\\\ref_voice_raw.wav\"\n}\n"
    },
    "portrait": {
      "status": "done",
      "ts": "2026-08-03 22:21",
      "elapsed_s": 95,
      "note": "FLUX.1 Dev fp8 (English prompt), 2nd attempt"
    },
    "compose": {
      "status": "done",
      "ts": "2026-08-03 22:25:48",
      "elapsed_s": 24.7,
      "output_tail": "[22:25:23] [compose] voice_dur=52.0s bounds=[('hook', 0.0, 5.0), ('setup', 5.0, 13.2), ('rule1', 13.2, 25.4), ('rule2', 25.4, 35.2), ('rule3', 35.2, 44.7), ('cta', 44.7, 52.0)]\n[22:25:32] [compose] base_avatar: D:\\AI_WORKSPACE\\video_use\\runs\\run_001\\05_compose\\base_avatar.mp4 (52.0s)\n[22:25:44] [compose] composed: D:\\AI_WORKSPACE\\video_use\\runs\\run_001\\05_compose\\composed.mp4 (52.0s) shots=6\n{\"composed\": \"D:\\\\AI_WORKSPACE\\\\video_use\\\\runs\\\\run_001\\\\05_compose\\\\composed.mp4\", \"composed_subs\": \"D:\\\\AI_WORKSPACE\\\\video_use\\\\runs\\\\run_001\\\\05_compose\\\\composed_subs.mp4\"}\n"
    },
    "render": {
      "status": "done",
      "ts": "2026-08-03 22:25:54",
      "elapsed_s": 1.9,
      "output_tail": "[22:25:52] [render] video dur=52.0s\n[22:25:54] [render] final=D:\\AI_WORKSPACE\\video_use\\runs\\run_001\\07_final\\final.mp4 nosub=D:\\AI_WORKSPACE\\video_use\\runs\\run_001\\07_final\\final_nosub.mp4 cover=D:\\AI_WORKSPACE\\video_use\\runs\\run_001\\07_final\\cover.jpg\n{\"final\": \"D:\\\\AI_WORKSPACE\\\\video_use\\\\runs\\\\run_001\\\\07_final\\\\final.mp4\", \"final_nosub\": \"D:\\\\AI_WORKSPACE\\\\video_use\\\\runs\\\\run_001\\\\07_final\\\\final_nosub.mp4\", \"cover\": \"D:\\\\AI_WORKSPACE\\\\video_use\\\\runs\\\\run_001\\\\07_final\\\\cover.jpg\", \"duration\": 52.0, \"audio\": \"D:\\\\AI_WORKSPACE\\\\video_use\\\\runs\\\\run_001\\\\06_render\\\\audio_mix.m4a\"}\n"
    },
    "avatar": {
      "status": "done",
      "ts": "2026-08-03 22:22",
      "elapsed_s": 9,
      "note": "2.5D zoompan"
    },
    "graphics": {
      "status": "done",
      "ts": "2026-08-03 22:16",
      "elapsed_s": 8,
      "note": "10 elements + 6 subtitles"
    },
    "qc": {
      "status": "done",
      "ts": "2026-08-03 22:31",
      "elapsed_s": 60,
      "note": "vision 5/5 pass"
    }
  }
}